Estrutura Básica

Rede basica: Estrutura básica das interações e seus agrupamentos principais.

Tipos de interação: Estrutura básica, agrupamentos e foco nos tipos de interação.

Medidas de importância

in_degree

out_degree

betweenness

eigenvector

Análise de sentimento

Row

Polaridade Geral

Medo

Surprisa

Row

Tristeza

Nojo

Raiva

Row

Antecipação

Alegria

Confiança

---
title: "MTST no Twitter"
output:
  flexdashboard::flex_dashboard:
    orientation: rows
    social: menu
    source_code: embed
---

```{r setup, include=FALSE}
if (!('devtools' %in% installed.packages()[,'Package'])){install.packages("devtools")}; require(devtools);              # To get packages from Github
if (!('rtweet' %in% installed.packages()[,'Package'])){install.packages("rtweet")}; require(rtweet);                    # Twitter API interface
if (!('igraph' %in% installed.packages()[,'Package'])){install.packages("igraph")}; require(igraph);                    # graphs
if (!('tidygraph' %in% installed.packages()[,'Package'])){install.packages("tidygraph")}; require(tidygraph);           # graphs as dplyr
if (!('leiden' %in% installed.packages()[,'Package'])){install.packages("leiden")}; require(leiden);                    # Clustering algorithm
if (!('flexdashboard' %in% installed.packages()[,'Package'])){install.packages("flexdashboard")};require(flexdashboard);# For dashboards 

# load necessary function files
wd <- '/home/cesar/Dropbox/R/Twitter_analyses/Projetos/MTST_semanal'
setwd(wd)
file.sources = list.files(paste0(wd,'/modular_codes'), 
                          pattern="*.R", full.names = TRUE, )
sapply(file.sources,source, local = knitr::knit_global())
```

```{r}
appname <- 'InFo(r)me'
consumerKey='oPwkEUrnLYdi0pe3P71ENDkHU'
consumerSecret='dvz2GeOOsYi0DfR957MT7bKkCkFt1HfeB3NPYskSGPaRTSNuSS'
accessToken='81131185-sjFX3WKJeeB05IAiaHUUNAq2yrGcMNMNfILiNBmEA'
accessTokenSecret= 'TO1Qy6ZsMGHzA8IHGhsqQ5ADqQJCRkHKfe440zZZ5B8PW'
rapidapi_key = '9453432f12mshd49bad8f648a9e8p117dc9jsn4f1ca9517def'

# Search term
search_term <- c('MTST', 'Nucleo de Tecnologia')
# max tweets
n <- 100000

#Connect to twitter
if(is.null(get_token())){
  twitter_token <- create_token(app = appname, 
                                consumer_key = consumerKey, 
                                consumer_secret = consumerSecret,
                                access_token = accessToken, 
                                access_secret = accessTokenSecret)  
}else{
  twitter_token <- get_token()
}
sig <- config(token = twitter_token)

```


```{r}
# Start from Here when twitter data is provided
tweet_df <- rtweet::read_twitter_csv('data/twitter_data.csv')
```

```{r}
meta <- list(tweets = nrow(tweet_df),
             by_term = t(as.matrix(table(tweet_df %>% pull(query)))))

# Polaridade de sentimentos com base em bancos em PtBr oplex e Sentilex
tweet_df <- polaridades(tweet_df)

# Interaction Network
net <- my_network_graph(tweet_df) %>%
  as_tbl_graph()

# Interaction network metrics
net <- net %N>% 
  mutate(community = as.factor(leiden(net, resolution_parameter = 0.5))) %E>%
  mutate(community = .N()$community[from]) %E>% # .N() makes the node data available while manipulating edges
  mutate(edge_bet = centrality_edge_betweenness(directed = T)) %N>%
  mutate(in_degree = centrality_degree(mode = 'in')) %>%
  mutate(out_degree = centrality_degree(mode = 'out')) %>%
  mutate(betweenness_c =  centrality_betweenness(directed = T)) %>% # centrality_betweenness can't handle large graphs bc output is list
  mutate(eigen = centrality_eigen(directed = T))
```

Estrutura Básica {data-navmenu="Menu"}
=====================================

### Rede basica: Estrutura básica das interações e seus agrupamentos principais.

```{r}
basic_net(net, meta, search_term)
```

### *Tipos de interação*: Estrutura básica, agrupamentos e foco nos tipos de interação.

```{r}
int_type_net(net, meta, search_term)
```

Medidas de importância {data-navmenu="Menu"}
=====================================
### in_degree
```{r}
p <- centrality_plots(net)
ggplotly(p[[1]])
```
### out_degree
```{r}
ggplotly(p[[2]])
```
### betweenness
```{r}
ggplotly(p[[3]])
```
### eigenvector
```{r}
ggplotly(p[[4]])
```

Análise de sentimento {data-navmenu="Menu"}
=====================================

Row
-------------------------------------

### Polaridade Geral

```{r}
print(sentiment_net_plot(net, meta, search_term, sent_vars = 'nrc')[[1]])
```
 
### Medo
    
```{r}
print(sentiment_net_plot(net, meta, search_term, sent_vars = 'fear')[[1]])
```
  
### Surprisa
  
```{r}
print(sentiment_net_plot(net, meta, search_term, sent_vars = 'surprise')[[1]])
```

Row
-------------------------------------
  
### Tristeza
  
```{r}
print(sentiment_net_plot(net, meta, search_term, sent_vars = 'sadness')[[1]])
```


### Nojo

```{r}
print(sentiment_net_plot(net, meta, search_term, sent_vars = 'disgust')[[1]])
```

### Raiva

```{r}
print(sentiment_net_plot(net, meta, search_term, sent_vars = 'anger')[[1]])
```

Row
-------------------------------------
  
### Antecipação
  
```{r}
print(sentiment_net_plot(net, meta, search_term, sent_vars = 'anticipation')[[1]])
```

### Alegria

```{r}
print(sentiment_net_plot(net, meta, search_term, sent_vars = 'joy')[[1]])
```

### Confiança

```{r}
print(sentiment_net_plot(net, meta, search_term, sent_vars = 'trust')[[1]])
```